Method and apparatus for optimizing a multivariate allocation of resources

ABSTRACT

A method for the allocation of resources. A series of products (refinements) is arranged in a product space plan (PSP) according to connectivities between the products and associated components (resources). An expected value function is derived for the plan, and converted into a closed form expression. The PSP is transformed into a working space plan (WSP) having corresponding elements for each product. A loading step is applied to the WSP wherein each element is sequentially analyzed to determine if an associated component gates production of that product. Each element is loaded, with components being unloaded from prior elements if a subsequent element is gated. A reloading step redetermines if any elements are gated by a component that might have been unloaded from the element. If the element remains gated, the elements sharing the component are merged into a sub-plan, which can be maximized as a function of a single variable.

REFERENCE TO PRIOR RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent application Ser. No. 09/412,560, filed Oct. 5, 1999, entitled “Method and Apparatus for Optimizing Multivariate Allocation of Resources,” now U.S. Pat. No. 6,684,193, by at least one of the same inventors, and which is hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates generally to a method for optimizing the multivariate allocation of resources. In particular, various implementations of the invention may be usable to provide a method for finding an optimum level of resources that will support a desired level of production of refinements being produced from those resources. Conversely, various implementations may also allow for finding a level of resources that will support an optimum level of production refinements produced from the resources.

BACKGROUND OF THE INVENTION

In the production of products, or refinements, certain sets of resources are used to create each such product. Each refinement might use one or more resources to facilitate its production. Additionally, such resources might be shared as common components that are used to form a plurality of different refinements. In order to produce the desired level of different refinements, it is necessary to maintain a sufficient supply of resources on hand that will satisfy the general need, in light of the complex interactions between the various refinements and resources.

The desired levels of refinements are usually derived from trying to maximize the amount of revenue that can be derived from selling the refinements. Hence the price to be charged for each refinement would be one important factor in determining optimum levels of production for each refinement. In the simplest case, an infinitely large supply of resources would be maintained, so that any desired levels of refinements could be produced without delay.

Other considerations, however, do not make this solution practical. Profits for each refinement must be considered, and profits are a factor of the price required to obtain each component part that goes to make up the refinement. Resources that are maintained as inventory often carry a high price. Such resources lose their relative value over time (also referred to as “erosion”), due to aging of the parts, technology advancements, and the like. Storage costs of inventory are also a factor to be considered. Hence, maintaining a large inventory would guarantee continuous production of the refinements, but would lead to higher production costs.

The converse to this situation would be to maintain very small inventories of resources. This presents a problem, however, when the production process demands more resources than are available in the present inventory. New component parts must be ordered from supplier in order to fill the need. If the need is immediate (as it often is), certain parts may not be available at all, due to the limited production capabilities of the supplier. Otherwise, even if the parts are available, a higher price will generally be charged to expedite the shipment of such component parts. Hence, maintaining a low inventory is not a realistic solution, as production might be halted altogether, or production costs would escalate due to the added cost for expedited component resources.

This complex set of interactions results in an associated multivariate normal distribution of demand and an associated Expected Value Function (EVF) of a set (or vector) of refinements, as a function of a given set (or vector) of resources. Each modeled “plan” or interaction of refinements and resources will produce different EVFs, which are a function of many different elements, and connect rates between the elements. In general this function has been very difficult to solve and requires significant computer resources, and/or time to solve. Additionally, the non-deterministic nature of the function leads only to approximate results, and not full solutions.

A method and apparatus have been provided in the above referenced application (as incorporated herein) to provide a deterministic solution to the EVF. The modeling technique described properly accounts for the horizontal and vertical interactions between certain modeled elements. The solution technique provides a closed form expression of the resulting function, wherein it will not be necessary to solve multidimensional integrals in order to determine a solution. This closed form (deterministic) expression should also be executable on ordinary computer resources, and in a reasonable period of time, despite the multivariate nature of the problem.

Even with the closed form expression provided by the prior application, and the relative ease of its solution over prior forms, it is desirable to optimize the expression in order to determine an adequate (but not overabundant) supply of resources to provide a desired level of refinements. Any number of optimization techniques might employed. Certain prior optimization techniques are search-based, and iteratively determine a solution for the expression, by comparing each new determined result with the last. Such solutions scale exponentially as the complexity of the problem (or plan) increases, and become computationally intractable for even modest sized real-world applications. Additionally, such solutions are not guaranteed to find a global maximum, and instead the search might end up converging on a local maximum instead.

Current techniques or methods used for optimization can be generally divided into unconstrained optimization and constrained optimization. In unconstrained optimization, methods are broadly categorized on whether they use derivative information or do not use such information. Methods that do not use derivative information are search methods used for problems that are very nonlinear or have discontinuities. When the function to be optimized is continuous, gradient methods generally work best. Newton's method is an example of a higher order method that uses second order information. All such methods are computationally expensive, especially as the order increases, and as the dimensionality of the problems increases. With regards to the latter, the increase in computational complexity grows exponentially with the number of dimensions. Such methods are therefore prohibitive for any real world resource allocation optimization problem.

Constrained optimization aims at solving the Kuhn-Tucker (KT) equations that are necessary conditions for optimality for a constrained optimization problem State of the art methods include constrained quasi-Newton methods, which are commonly referred to as Sequential Quadratic Programming (SQP) methods. These methods can at most achieve the efficiency of unconstrained optimization, and in general are less efficient.

Accordingly, what is needed in the field is an optimization technique that simplifies the optimization solution of the closed form expression to still another deterministic value, and a solution that scales efficiently with the size of the problem. The solution should work for unconstrained as well as nonlinear constrained optimizations. The solution must account for the dependencies and interactions between the various elements (i.e. refinements and resources). The solution must also provide a reasonable time to termination, and one that does not grow exponentially in its complexity as the order of the plan increases. The solution should arrive at a global maximum for the value function, and not get caught finding local maxima. For an “N” dimensional problem, the deterministic solution might provide for maximizing N one-dimensional expressions (over one variable each), instead of maximizing one N-dimensional expression (over many variables).

SUMMARY OF THE INVENTION

A method is disclosed that provides an efficient optimization solution to a closed form expression that has been derived for the multivariate allocation of resources. In particular, a method is provided for an efficient unconstrained and nonlinear constrained optimization solution to the multivariate allocation of resources to meet manufacturing needs for uncertain multiproduct demand, where uncertainty is captured through a multivariate normal distribution over product demand (or more generally, any member of the elliptical family of distributions).

This theory and solution generalizes to any model of resource consumption, in relation to producing a “refinement.” The term “refinement,” as used through this document, is generally intended to represent an end result (i.e. product) which might be produced from a set of resources (i.e. components, or the like). Therefore, a typical refinement-resource framework might involve product-component models, wherein certain components are used to comprise certain products. Resources might also include available liquid capital for investment, bonds, stocks, and options. The present system might also be used to consider assets, a portfolio of assets, or consumption of those assets, such as energy (e.g. gas, nuclear, electric), space, real estate, etc. Another example problem includes the allocation of manpower. For instance, in association with manpower problems, a set of resources (i.e. employees) exists that might be used by many different end sources (i.e. work tasks, or jobs). Sharing of such manpower will involve a complex mix of parameters. In order to maximize productivity (or revenue), the assets (or resources) will need to be analyzed, in relation to production (or refinement) goals. Optimization of the resulting function representing the models should be performed in order to provide the proper amount of resources to produce a desired level of refinements. Additionally, the space of allowable resources may be constrained through nonlinear inequalities, requiring that the solution to the optimization satisfy those inequalities.

As yet another example, a company might entertain a portfolio of development projects. Each project requires the allocation of capital, work force, and new equipment. Certain factors remain uncertain, including project growth as based upon the success of the venture, market indicators of the interest in the product, uncertain market pressures and demand, and the synergization and cannibalization offered by competing projects. In this instance, the company might desire to know how to best allocate its resources over the various projects in order to maximize revenues in the face of the aforementioned uncertainties.

According to various teachings of the above-incorporated prior application, and equally applicable to the present application, relevant models and associated equations are formulated according to a “plan”, wherein the resulting equations are solved for certain values (or ranges). The models or plans might consist of a set of resources (e.g., components) and a set of refinements of those resources (e.g., products). The resource consumption is based on a linear relationship between each refinement and its set of supporting resources (e.g., the bill of materials for a product). Each resource is typically shared among several refinements. There is a demand distribution for the refinements that can be a multivariate normal distribution (e.g., future product demand for next quarter, or the like). More generally, this distribution can be any member of the elliptical family of distributions, of which the multivariate normal distribution is an example. The following discussion will reference and work with the example multivariate normal distribution, but the present method is not intended to be limited only to such distributions.

There is also a value function that is a linear, polynomial, or exponential function of the refinement demands and other associated parameters of the model. For instance, the value function might include a revenue function for certain products, and be expressed as a sum of the products of the margin and demand for each refinement (or product). Of interest to any company, analyst, or the like, is the computation of the statistical expectation of the value function at a given resource allocation, and for a given multivariate normally distributed demand profile. This is referred to as the expected value function. This expected value function is transformed into a closed form expression per the prior referenced application.

The resulting closed form expression can be further processed to provide a deterministic solution for optimization of the closed form expression. The EVF resulting from any modeled plan is transformed to be a series (or sum) of products, which is the closed form expression. This process involves transforming the original product space, referred to as “X” herein, to a different space referred to as “Z” herein. In general, this transforming step involves taking a transformation of the product space to provide the working transformed space wherein the transformation can include any that maps the distribution induced on the resources (or components) by the product demand distribution into a distribution with zero mean and unit variance. One such example transformation includes an inverse Cholesky transform. While the inverse Cholesky transform will be referred to herein for example purposes, the present invention is not intended to be limited to only this transformation. As a result, the linear transformation “Z” is an inverse Cholesky transform of the “X” space. The resulting EVF is a summation of product functions and component functions. The product functions include, for example, revenue and price functions. The component functions account for factors such as erosion, expediting, and/or penalty costs.

In graphical theoretic terms, the transformed X space can be described as a series of Z elements (i.e. Z₁ through Z_(N)), with the transformation also accounting for the respective connectivities with the resources or components “d” that are associated with each Z element. The next step involves finding an “Equilibrium Configuration” of this Z space graph. An Equilibrium Configuration provides the minimum amount of resources to produce any given amount of refinements, across the whole plan. To do so each Z is separated out into a series of “blocks” so that it has its own set of resources or components that are not shared with any other Z. If it is determined that the result is in equilibrium, then a series of formulas will exist for each block, and each set of formulas can be maximized separately. An intermediate function “h” is used to relate the level of refinements (Z) to resources (d), and hence the block formulas can become a function of a single variable. The EVF is the sum of these block formulas, and so a single-variable maximization can be performed on each block. Once the maximums are determined for each block, then inverse transformations can be performed on each Z, and the values of “d” for the each of the resources can be computed. This set of resources d will maximize the original EVF.

To determine the Equilibrium Configuration, an iterative method is employed. The first step is a “Loading step.” Each Z is analyzed and a “Gating” component is determined, from among the various components associated with each Z. The Gating component is the lowest allocated level of a component needed to make a particular Z. The aforementioned “h” function is used to account for the connectivity rates between each element Z and its components (i.e. d₁-d_(N)). As each Z is loaded by a component, the revenue function is recomputed to find a new maximum. Next, it is determined if the new maximum is gated by any remaining components. If it is gated, then the next Z is loaded and similarly checked for gating. If it is not gated, then the present Z is loaded with the next component, and a maximum is recomputed, and gating is checked. This process interatively continues until the newly computed maximum is not gated, or until no more components remain in the plan.

The second step is referred to as the “Reload step.” A component d might have been loaded onto a Z element (e.g. Z₂) and that component may have been determined to be a gating component. However, this component may have already been loaded onto a previous Z element (e.g. Z₁). It then becomes necessary to “unload” d₂ from Z₁. The Z₁ block is no longer in equilibrium and a new maximum (i.e. Z₁*) is computed. The process rechecks to see whether d₂ gates Z₁*. If no, then the process will interatively move on and reload the next Z element. If gating occurs, then two possibilities must be addressed: (1) If the next Z element (i.e. Z2) has been reloaded, then Z₁ is merged with Z₂. Merging produces a sub-graph, which will resemble the original configuration involving both Z₁ and Z₂ and their components. However, Z₁ and Z₂ are no longer independent, and are functionally related. Hence the new block resulting from the sub-graph is still a function of only one variable, and can be maximized accordingly. (2) If Z₂ has not been reloaded, then reload Z₂ (i.e. the operation is recursive).

Once these Load and Reload steps are completed, an Equilibrium Configuration will result. Each graphical block will be a function of only a single variable (i.e. Z₁, Z₂, through Z_(N)). It thereafter proves to be relatively straightforward to maximize each function bver its single variable. Once the maximum is found, each component (d₁ through d_(m)) can be computed or “backed out” of the values for Z. It is these levels of components that will thereby produce a maximum result for the EVF—the plan having adequate resources d, but without resulting in an overabundance of resources that might experience erosion and the like.

According to one aspect of the present invention, a method is provided for optimizing a multivariate representation of resources which are used in producing a set of products, the resources, products and their respective connectivities being represented in a product space plan, the method comprising: converting an expected value function associated with the resources and products into a closed form expression; transforming the product space plan into a working transformed space plan, wherein the products are transformed into working elements; performing a loading step to form elemental blocks as a function of a single variable with elements being loaded with resources that gate production of the element; performing a re-loading step to form elemental blocks as a function of a single variable with elements being reloaded with resources that gate production of the element; solving for the maximum of each elemental block over each associated single variable; and determining the optimum level of resources as a function of the solved for maximums.

According to yet another aspect of the present invention, a method is provided for optimizing a multivariate expected value function which represents a statistical expectation of the value function at a given component allocation and for a given demand distribution, the method comprising: forming a plan in the product space associated with the expected value function which represents the products, components, and connectivities therebetween; transforming the product space plan to form a corresponding working space plan, with products corresponding to elements such that the distribution induced on the resources is transformed into a distribution with zero mean and unit variance; converting the associated expected value function into a closed from expression; performing a loading step which loads each element with components that gate the production of each element; performing a reloading step which reloads components that were unloaded from an element in the loading step; merging elements that are further gated by components that were unloaded, with the loading, reloading, and merging steps resulting in an equilibrium configuration; and solving the equilibrium configuration to determine the optimization of the expected value function.

According to still another aspect of the present invention, a method is provided for optimizing the multivariate amount of refinements produced from a level of resources, the method comprising: configuring the refinements and resources in a representative refinement space plan that accounts for connectivities therebetween; deriving an expected value function for the refinement space plan; converting the expected value function to a closed form expression; transforming the refinement space plan into a working space plan, with the refinements represented by transformed elements; sequentially loading each element with resources that gate the production of each element; sequentially reloading components that were unloaded from elements in the loading step; merging elements that are further gated by components that were unloaded, with the loading, reloading, and merging steps resulting in an equilibrium configuration; and solving the equilibrium configuration to determine the optimization of the expected value function.

These and other advantages of the present invention will become apparent upon reading the following detailed descriptions and studying the various figures of the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention, together with further advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:

FIG. 1 shows an example system configuration that might utilize the optimization method described herein.

FIG. 2 shows a multi-element influence diagram with multiple horizontal and vertical interactions between the elements.

FIG. 3A shows a typical price elasticity curve of the mean mu versus price p.

FIG. 3B shows a typical Expected Value function to be maximized, over a component vector d, or mean vector mu.

FIG. 4 shows a graphical representation of a plan in the Z space, as transformed from the X space.

FIG. 5A shows a typical monotonically increasing product function f_(i)(Z_(i)).

FIG. 5B shows a typical concave component function g_(j)(d_(j)).

FIG. 5C shows a typical curve resulting from the substraction of the g_(j)(d_(j)) curve from the f_(i)(Z_(i)) curve (i.e., f_(i)(Z_(i))-g_(j)(d_(j))).

FIG. 6 shows a graphical depiction of a simple plan with the certain aspects of Loading applied to facilitate description of the Loading step.

FIG. 7 shows a graphical depiction of a simple plan, with a first and second alternative resulting from the Loading Step, depending upon which components d gate elements Z.

FIG. 8 shows graphical depiction of the simple plan above being guided through the Loading and Re-Loading steps to produce an Equilibrium Configuration, with the result being a Merged block which can be maximized over a single variable Z.

FIG. 9 shows a more complex plan which results in a plurality of blocks after the Loading and Reloading steps are used to produce an Equilibrium Configuration, with each block being maximized over a single variable.

FIG. 10 shows a flowchart of certain representative steps that might be used to applied the optimization method, including the Loading and Re-Loading Steps.

FIG. 11 shows a flowchart of certain representative steps that might be used to perform the Loading Step, shown as an element in FIG. 10.

FIG. 12 shows a flowchart of certain representative steps that might be used to perform the Re-Loading Step, shown as an element in FIG. 10.

DETAILED DESCRIPTION OF THE INVENTION

The following discussion includes a method for optimizing the multivariate allocation of resources. In one implementation, the method takes a multivariate expected value function as a closed form expression, and optimizing the expression in a deterministic manner. Also described is a method for finding an optimum level of resources that will support a desired level of production of refinements being produced from those resources. Conversely, various techniques also allow allows for finding a level of resources that will support an optimum level of production refinements produced from the resources. The method provides for an efficient unconstrained and nonlinear constrained optimization solution to the multivariate allocation of resources to meet manufacturing needs for uncertain multiproduct demand, where uncertainty is captured through a multivariate normal distribution over product demand (or more generally, any member of the elliptical family of distributions).

Example System to be Optimized

FIG. 1 shows a block diagram 100 with a main element 102 with data (or information) going in, and resulting information coming out. The aggregation and treatment of such data is further detailed below. Examples of historical data flowing into the system include Product Demand Data 104, which would include bookings, shipments, etc. Historical data might also include Component Consumption Data 106.

Value information (or “V” 107) might be represented as financial or operational information. Financial information 108 would include such things as product price, component costs, missed sale penalties, value erosion, etc. A missed sale penalty is derived from every unit of product demand that is left unfulfilled. Value erosion is derived from every product that is built, but goes unsold, with its value eroding over time.

Operational information 110 might include supply expediting levels and premiums, cancellation levels and penalties, minimum and maximum product supply levels, etc. In general, there are significant costs involved with expediting the supply of a component part, particularly in times of shortage. These costs often come in the form of a penalty step function. For the example, procuring up to 100 units might carry a premium of $2 per unit. Procuring 100 to 300 units might carry a premium of $4 per unit, as so forth. As more of a part is needed above a particular contract level, the greater the premium that will be paid by the manufacturer in trying to procure that part. As more of a part is needed, different trigger points will carry escalating dollar premiums. Cancellation levels and penalties relate generally to fees paid by a company for ordering certain products (or parts), and then canceling the order at a later time. The supplying company will have incurred tooling costs and the like, which must be covered in fees and penalties. Minimum and maximum product supply levels relate to supply levels being used as an operational business parameter. For instance, if a product has been deemed strategically valuable to business channels, then a minimum level might be maintained, regardless of what other financial indicators might suggest regarding the cost of maintaining such minimum levels. A distribution warehouse might carry a certain amount of a product, just in case an important customer might want to purchase a large amount of that product. The detriment of having the product as eroding inventory is outweighed by benefit of having it readily on hand for this important customer. A maximum level might be maintained in order to move customers onward to a next generation product. For instance, even if demand continues to exist for a product, the amount of inventory is fixed at a certain level. After the inventories run out, and customers want more of the product, they are instead encouraged to buy the next model in lieu of the now extinguished product.

The system shown will also incorporate knowledge, data, and the like. Such data might include marketing assessment information 112. Marketing assessment information might include market growth, market size, market share, etc. Knowledge data also includes component knowledge assessment information 114, wherein an example factor such as a mix (or quantity) per connect rate is shown. The connect rate measures the rate at which a component is “consumed” or “demanded” by a product platform. The connect rate can also be estimated from data.

The main body of the system 102 shows certain representative elemental steps that utilize the various data being brought into the system. A model compilation step 120 is shown that compiles the data into a workable form so that working solutions can thereafter be derived from the modeled data. The model compilation leads into an optimization step 122. One solution might be to optimize a certain modeled component of the data, such as an expected value function representing a multivariate function. A resulting output of the system might therefore be optimized component allocation plans 123. Another related output might be optimized product plans 125. The optimization step leads into the element identified as sensitivities/scenarios/results 124. This element produces results such as risk management insights, and the like. Risk management insights 126 include such factors as product/revenue upside, component gating risk, product interaction effects, intercomponent gating risk, and flex levels. Product/revenue upside considers how such factors increase (or affect) overall revenues. Gating risks consider the effects of allocating components towards one product versus another. Interaction effects consider the influence of one product over another (in competing for resources, sales, and the like).

Optimization

The optimization step 122 optimizes, or finds a maximum of, the EVF. Referring now to FIG. 2, this complex structure or plan 200 (also referred to as an influence diagram) will have a non-linear, multivariate normal distribution function (i.e., EVF) associated with it. This multivariate normal distribution function represents the multivariate allocation of resources to meet manufacturing needs for uncertain multiproduct demand, where uncertainty is captured through a multivariate normal distribution over product demand. More generally, the distribution might include any member of the elliptical family of distributions. The present method thereby provides for an efficient unconstrained and nonlinear constrained optimization solution to the multivariate allocation.

The products (X₁-X_(N)) are shown interacting with components or resources (d₁-d_(m)). In higher dimensions, these variables will be referred to in vector notation, i.e. X₁-X_(N) are collectively referred to as vector X, and d₁-d_(m) are collectively referred to as vector d. The dashed line 202 indicates that the limited number elements shown are for example purposes only, and for simplicity in illustrating the proposed solution method. Any number of elements might exist between X₂ and X_(N), with an even larger potential of associated resources interacting (via different connect rates) with such elements.

The resulting EVF might typically represent a revenue generation function, or the like. It then becomes desirable to find the optimum level of production of the products X₁ through X_(N), which will thereby optimize (or maximize) this revenue. One factor to consider is that certain products might not sell for as much as others. Still other products might use more expensive (or more numerous) components or resources (i.e. d₁ through d_(m)). The resources further drive (or influence) which levels of X to produce in order to maximize revenue. For instance, certain resources carry higher erosion and/or penalty costs. When all influences are considered, a certain set of resources can be found that will maximize the revenue for the particular plan. By maintaining this level of resources, the desired levels of X can always be produced to thereby maximize the revenue for this plan.

The plan can also be optimized from a different sense, for instance, over the mean mu (as referred to textually, in lieu of the symbol μ). In such a case, the plan is fixed at a level of d, and the value function is considered as a function of the mean mu. With such a formulation, it might therefore be desirable to find a mean demand for which the value function achieves a maximum. One reason for such interest in the mean demand is shown by the following example. In certain situations, a vendor might have on hand products (refinements) that need to be sold, for instance used cars, or the like. The vendor already owns the products and wants to be able to control the mean via the price that is set for the cars. The question then becomes how to price the cars so that they do not sit around in the lot as unsold inventory. Conversely, the vendor does not want to undersell the cars below their actual value. Price elasticity principles (in general) dictate that as the price of an item increases, the demand for that item decreases (and vice versa). For instance, referring to FIG. 3A, a representative curve is shown whereby the mean demand of sales mu(p) is shown as a function of price. It is therefore possible to control this mean demand by adjusting the price. This in turn controls the mean distribution. With the resources d fixed, the mean distribution can in turn used to maximize (or control) the revenue.

Accordingly, these are but a few examples of the types of optimization problems that can be addressed. Such problems might also be applied in either direction. For instance, certain markets might need optimization over plan allocation in order to keep inventories at the right levels to maximize revenues. Still other markets might need optimization over the mean, or finding the price that maximizes sales. The present invention is not intended to be limited to these examples presented, and optimizations over other variables are equally and readily applicable.

The EVF might therefore be a function of (at least) vector X ({right arrow over (x)}) and vector mu ({right arrow over (μ)}) as shown by the following: Expected Value Funtion=EV({right arrow over (x)},{right arrow over (μ)})  (1)

FIG. 3B shows an example EV plot as a function of vector d ({right arrow over (d)}). Similarly, this plot might also represent the EV as a function of vector mu, if for instance vector d where fixed. Depending upon the complexity of the relationships between the products X, the EVF might grow linearly, or exponentially with the addition of new products into the plan. For two products X₁ and X₂, a simple functional relationship might be: f(x ₁ ,x ₂)=x ₁ +x ₂  (2)

A more complex functional relationship might include: f(x ₁ ,x ₂)=x ₁ ·x ₂  (3)

The prior application demonstrated a method to transform the EVF into a series (or sum) of products, wherein the EVF could readily be solved. However, to optimize this function, search based algorithms are typically employed. For the simple functional relationship above, X₁ and X₂ would be each be maximized by solving for these variables, then proceeding along the steepest gradient of the functional curve until a maximum is located.

The more complex functional relationship presents a more difficult solution. As each of the terms X₁ and X₂ are multiplied times each other, one variable X₁ would need to be fixed while the other was varied to find a maximum. This process would be iteratively repeated, and grows even more cumbersome as more variables X are added (i.e. the dimension increases). For instance, a function with three variables X₁ times X₂ times X₃ would involve interatively fixing two of the variables, and solving for a maximum based on varying the third. The problem grows exponentially. For instance, if the number of variables increases by a factor of 10, then the problem complexity would increase by 2^10. Invariably such search based algorithms settle upon solutions that are not global maximums, but instead local maximums. Referring again to FIG. 3B, the desired global maximum is at point 302, but search based algorithms often stop at the local maximum 304.

The present system instead takes the closed form expression provided by the prior application and provides a non-search based, deterministic optimization solution. As more variables are added, the complexity grows as a low-order polynomial, depending upon the size of the problem. For instance if the problem presents “N” of one type of factor, and “M” of another type of factor, then N*M is the size of the problem. The present method also provides a global maximum solution, rather than a local maximum solution.

The initial step in the present optimization solution involves reducing the EVF to a series (or sum) of products as described in the prior application. This step transforms the problem from the product space (referred to as “X” space) into a workable transformed space (referred to as “Z” space). This transformation is accomplished by essentially taking a transformation of the product space to provide the working transformed space wherein the distribution induced on the resources is transformed into a distribution with zero mean and unit variance. While any such transformation might be used, one such example transformation would include performing an inverse Cholesky transformation of the X space (with mu subtracted, if desired for the optimization solution), shown as follows: {right arrow over (z)}=T ⁻¹({right arrow over (x)}−{right arrow over (μ)})  (4)

The transformed EVF then becomes a sum (or series) of functions, each representing an integral portion of the graphical plan, shown by:

$\begin{matrix} {{EV} = {{\sum\limits_{i = 1}^{N}\;{f_{i}\left( z_{i} \right)}} - {\sum\limits_{j = 1}^{M}\;{g_{j}\left( d_{j} \right)}}}} & (5) \end{matrix}$

The resulting plan is shown by the graph in FIG. 4, which will henceforth be used as a simple example to illustrate the present solution method, in graphical theoretic form. The transformed product space is represented by Z₁ through Z_(N). The component space is represented by d₁ through d_(m). Connectivity rates are also shown between the various elements as r₁, r₂, though r_(k).

Each function f_(i)(Z_(i)) is (for example) a revenue generating function, or the like, with Z_(i) tied to the product space X. The transformed component functions g_(j)(d_(j)) represent erosion type terms, and/or expediting/penalty costs, and are similarly tied to the original component space. Referring now to FIG. 5A, a typical revenue generation function f_(i)(Z_(i)) is shown. This curve 502 is monotonically increasing as Z_(i) increases. Finding a maximum of this curve would simply involve providing as much Z_(i) as possible to find the highest point (to the right) on the curve. The components d, however, introduce other effects on the revenue. Components in inventory become more expensive, as they decrease in value. Moreover, maintaining smaller numbers of components in inventory introduces potential penalty costs in procuring the components on an expedited basis, i.e. at the last moment they are needed in order to facilitate continue production of products. Accordingly, the component curve g_(j)(d_(j)), shown as 504 in FIG. 5B, is generally concave in shape to indicate such effects. The resulting EV curve 506 in FIG. 5C results from subtracting the component cost effects 504 from the revenue curve 502. The maximum of the resulting curve f_(i)(Z_(i))-g_(j)(d_(j)) is shown at 508. It is this level of d_(j) that will provide maximum revenues from selling Z_(i) (or, more accurately, by selling the product X_(i) relationally tied to the transformed Z_(i)).

The relationship between each d_(j) and Z_(i) are tied to the connectivities r₁ through r_(k). A transformation can thereafter be applied, which relates each d and Z element. This is done through a function “h” which relates the connectivities between the elements, generally represented as follows: d _(j) =h _(j)(z _(k))  (6)

As such, each d_(j) can be functionally related to any of the other Z components (i.e. Z, with separate indice k).

Equilibrium Configuration

Given this graphical formulation, it is desired to find an “Equilibrium Configuration” of this graph. In sum, the method takes the overall graph and breaks it up so that each Z has its own set of components, and they are not shared. For any given set of products and components, this Equilibrium Configuration will hold true for the maximum. Once the Equilibrium Configuration is found, the EV formulas for each block can be maximized separately over their given single variable. Hence, instead of maximizing one N-dimensional formula over many different variables, the problem is broken down into maximizing N one-dimensional problems.

Loading Step

The first step in finding the optimization solution is the “Loading Step.” The process of finding the Equilibrium Configuration will be demonstrated in terms of a simple example. Referring to FIG. 6, the Z-space plan 602 is shown comprised of Z₁, Z₂, and d₁, d₂, and d₃. FIG. 6 will be referred to initially to describe certain theory. FIG. 7 (described below) further describes such theory. Given this simple plan, the elements Z₁ and Z₂ are separated out into representative blocks, as shown by 604 and 606. Noteably the component d₂ is shared by both elements Z₁ and Z₂.

Referring to block 604, it becomes necessary to determine which component “Gates” element Z₁. The gating function is determined by the “h” function (see again Eqn. 6), which accounts for the connect rates and interactions between the resources and refinements. In this example, if the connect rates are the same, then a key result operates from the fact that the amount of d₁ and d₂ that are needed to support Z₁ has to be the same. For instance, if Z₁ is a computer and needs a keyboard and monitor to build one unit, then at the maximum of Z₁, the number of keyboards and monitors has to be the same. If there are more monitors left over than keyboards, then this cannot be a level to support maximum revenues because the surplus of monitors is going to experience erosion (and increase costs).

The key to Gating stems from the fact that each element Z₁, Z₂, etc. will have a maximum level associated with it, and will require a certain amount of components to support that maximum level. The maximum desired level of Z₁ might be found to require one d₁ component and ten (10) d₂ components. As the present solution progresses, the maximum desired level of Z₂ might be found to require only two (2) d₂ components. Hence, the component d₂ will be found to Gate Z₁, as opposed to Gating Z₂. In the end, if enough d₂ is maintained in inventory to support the higher demand levels of Z₁, then the relatively lower demand levels of Z₂ will, in turn, be fulfilled by the levels required by Z₁. Hence d₂ is said to Gate Z₁ and not Z₂, as reflected in block 604. Block 606 thereby shows the relationship between Z₂ and the remaining d₃ component.

Once the Gating requirements (or limitations) are fully found for each Z element, then the graphical formulation is found to be in Equilibrium Configuration. Assuming this is the case for the blocks shown as 604 and 606, it then becomes necessary to rewrite the resulting equations to be a function of a single variable. For block 604, the EV function can first be written as: MAXF ₁ =f ₁(z ₁)−g ₁(d ₁)−g ₂(d ₂)  (7)

which is a function of three variables Z₁, d₁, and d₂. By using the appropriate “h” translation function (see again Eqn. 6) to translate each d₁ and d₂ into the appropriate variable Z₁, the EV function can be rewritten as: MAXF ₁ =f ₁(z ₁)−g ₁(h ₁(z ₁))−g ₂(h ₂(z ₁))  (8)

Similarly, the second block 606 can first be written as: MAXF ₂ =f ₂(z ₂)−g ₃(d ₃)  (9) which is a function of two variables Z₂ and d₃. Again, the appropriate “h” translation function is used to translate d₃ into Z₂, and the EV function can be rewritten as: MAXF ₂ =f ₂(z ₂)−g ₃(h ₃(z ₂))  (10) The final EV is the sum of these two functions. Each set of equations for each block can thereby by maximized over a single variable. Once each maximum Z is computed (i.e. Z₁* and Z₂*), these values can be plugged back into the appropriate “h” translation function to find the levels of components d₁, d₂, and d₃ to support these maximum levels of Z. In other words, the levels of d₁, d₂ and d₃ can be “backed out” of the maximum levels found for Z₁ and Z₂.

Accordingly, in proceeding through the Loading step with a full plan of elements, each Z element is analyzed in turn. Z₁ is first analyzed to find it's gating component, or the lowest allocated level of components needed to make Z₁. Referring again to FIG. 6, Z₁ uses components d₁ and d₂. If, for instance, one d₁ and one d₂ are needed, then the gating component would be either d₁ or d₂. However, if three of d₁ are needed, and one d₂ is needed to make one Z₁, then the gating component would be d₁, as it takes three of d₁ for every one d₂. The “h” function takes into consideration these rates when relating each d element to each Z element.

Hence, Z₁ is loaded with d₁. The resulting function is shown by: F ₁(z ₁)=f ₁(z ₁)−g ₁(d ₁)  (11) Using this function, the next step is to recompute Z₁ that maximizes F₁, with the new max being referred to as Z₁*. The next step is to decide whether the new maximum is Gated. In other words, the method checks to see if Z₁* is further gated by any remaining components, in this case d₂. If Z₁* is not further gated (i.e. NO), then the method moves on to analyze the next element Z₂. If Z₁* is further gated (i.e. YES), then Z₁ is loaded with d₂ as per the function: F ₁ →F ₁ −g ₂(d ₂)  (12) The function for Z₁ is thereafter re-maximized, and the gating is checked again until either “NO” is the result, or no more children (or components) remain for that element Z.

In moving onto the next element Z₂, the same process is performed. Z₂ is checked to see if it is Gated by its first component, in this case d₂. If it is so Gated, then Z₂ is loaded by d₂, as per the function: F ₂(z ₂)=f ₂(z ₂)−g ₂(d ₂)  (13) The maximum for F2 is calculated and at that maximum, it is determined if the component d₃ can support that product level. If d₃ further Gates Z₂, then d₃ is loaded onto Z₂, as per the function: F ₂ →F ₂ −g ₃(d ₃)  (14) The maximum is recomputed, and the process continues until there are no further components.

The potential blocks resulting from such loading of Z₁ and Z₂ are further shown in FIG. 7. The original plan is shown as 702. If the first instance 704, the first block 706 resulted from a Z₁, which was not gated d₂. Hence block 706 has Z₁ loaded only with d₁. The second block shows Z₂ loaded with the remaining components d₂ and d₃. In the second instance 710, it was found that Z₁ was gated by both d₁ and d₂, and hence both were loaded accordingly in block 712. The remaining element Z₂ was loaded with element d₃ in block 714.

One key to the following formulation is Unloading of components. For instance, if d₂ gets loaded onto Z₂, but d₂ was already loaded onto Z₁, then the method needs to Unload d₂ from Z₁. In the first step, it is only desired to have one or the other of d₁ or d₂ to support the product level Z₂. If the revenue generating potential of this “product” (i.e. as relating back to product X₂) is so strong that it requires a higher level of a particular component, then this product will continue to generate more and more revenue, even as the component result needed moves further right on the g_(j)(d_(j)) curve (which moves up, due to erosion and the like, and pulls down the product curve). Accordingly, this product Z₂ might serve to raise the level of d₂ to higher levels. But as long as enough d₂ is provided to support Z₂, then the level of d₂ will already be taken up to a level which no longer gates Z₁. Hence, unloading d₂ from Z₁ does not present a Gating problem with the solution.

Such unloading is properly accounted for in the transformed space of the following system. The Z-space represents hypothetical (or transformed) product space. For example, assume that in the original space, X₁ and X₂ each had a one-to-one connect rate with the component d₂. If it were desired to sell ten of X₁ and ten of X₂, then twenty d₂ would be needed to produce the necessary products. If in optimizing the product curve, the solution resulted in a maximum for X₂ of ten, then the resulting level of d₂ needed would also be ten. However, this would not work because ten d₂ would not be enough to also support X₂. In the transformed space, however, such limitations to the solution are properly accounted for. If the revenue generating potential of Z₂ can sustain a level d₂ such that d₂ will not Gate Z₁, then d₂ can be unloaded from Z₁ and loaded onto Z₂. Z₂ will thereby support a level of d₂ that does not Gate Z₁.

Re-Loading Step

At the end of the Loading step, the resulting graphical solutions resemble the desired Equilibrium Configurations. However, further process steps must be applied because the loading step has not allowed for any two components to be shared by two or more products (as reflected in the original plans). A second step is applied, and is referred to as the Re-Load step, wherein the final Equilibrium Configurations are finally derived.

Referring now to FIG. 8, the original plan is again shown as 802. Blocks 804 and 806 are shown resulting from the loading step. In block 804, Z₁ is loaded with d₁ and d₂. Thereafter, Z₂ is analyzed and it is decided that its gating component is d₂. Accordingly, d₂ is unloaded from Z₁ and loaded onto Z₂. Z₂ is further analyzed to see if d₃ is a gating component. If d₃ is gating the new maximum for Z₂ (i.e. Z₂*), then d₃ is loaded onto Z₂. Blocks 808 and 810 illustrates this effect, as the dashed line 812 shows component d₂ being reloaded from Z₁ in block 808 to Z₂ in block 810.

Having Unloaded d₂ from Z₁, the first block is no longer in equilibrium because Z₁ can increase now beyond its maximum. Z₁ and d₁ were left at the relational functional levels they were from the first step (before d₂ was loaded onto Z₁). Upon Re-Loading d₂ onto Z₂, the maximum of F₁ is recomputed, and hence referred to as Z₁**. Next the method checks whether d₂ gates Z₁**. Note that d₂ got unloaded from Z₁ and loaded onto Z₂. During this operation, d₂ was increased to a new level because of the gating effect it had on Z₂. The question to be answered is whether—at the new level of d₂ as determined by Z₂—does d₂ continue to restrict or gate Z₁**. If d₂ does not restrict Z₁** (i.e. NO), then the method moves on to Re-Load the next Z element (i.e. Z₂). In this very simple example, the problem would be done because Z₂ is already in equilibrium. If d₂ does restrict Z₁** (i.e. YES), then two possibilities emerge: (1) If Z₂ has been Re-Loaded (which again does not fit for this simple example), then “Merge” Z₁ and Z2, along with their components d₁, d₂, and d₃. (2) If Z₂ has not been Re-Loaded, then Re-Load Z₂ (i.e. the operation is recursive). Once the graph has been fully reduced in this manner, then each block is a function of a single variable, and the maximum for each block can be computed.

Merging takes and restores part (or all) of the original relationships in the graph, if it is found that they can not be broken down into simpler blocks. An example of a merged block is shown by 814 in FIG. 8. For instance, it is found that Z₁ is still gated by d₂, even though Z₂ has already lifted d₂ up to a new level. However, Z₂ has already been reloaded (and it is in some kind of Equilibrium). Accordingly, Z₁ and Z₂ are merged into the new family as shown in block 814. Given the simplicity of the present example, this merger resembles the original graph. However, the merged block turns out to be a function of a single variable (i.e. Z₁), which makes its maximization straightforward over prior art examples. Z₁ and Z₂ are no longer independent, but are functionally related by the fact that they intersect at d₂. Accordingly, Z₁ and Z₂ are functionally related via the appropriate function “h”, and as indicated by relational arrow 816, and function 816′. Further detail is shown by: z _(i) =h ₁(d ₂)  (15) wherein Z₁ is functionally related to d₂ via function h₁. As further shown by: z ₂ =h ₂(d ₂)

d ₂ =h ₂ ⁻¹(z ₂)  (16) Z₂ is functionally related to d₂ via function h₂. Hence, Z₁ can be rewritten as a function of Z₂ as shown by: z ₁ =h ₁(h ₂ ⁻¹(z ₂))  (17) Once the EVF representing the block has been rewritten using such relational substitutions, then one variable Z can be used to functionally represent the Merged block, and a maximum can be readily found in solving over this one variable.

Sometime large families of elements might be found to merge into a relatively large sub-graph. In fact, a whole system might be found to merge back into one large block, as shown by the simple example of the present description. Still other examples might produce a large number of smaller blocks with no mergers resulting therefrom. Referring now to FIG. 9, a resulting balanced Equilibrium Configuration is shown for a large system with Z elements ranging from Z₁ through Z_(N), and d components ranging from d₁ through d_(m). A first block 902 is shown resulting from a merger of elements Z₁ and Z₂. The resulting EV function can be described in terms of the single variable Z₁. A second block 904 is shown with Z₃ loaded with both components d4 and d5. The resulting EV function would be a function of the single variable Z₃. The blocks would continue per the above presented solution method, wherein block 906 shows element Z_(N) loaded with component d_(m), with the resulting EV function being a function of the single variable Z_(N). Each of these EV functions can be maximized, and the resulting components d₁ through d_(m) can be “backed out” of the transformed variables Z (i.e. d₁ through d_(m) can be solved for via inverse transformations). It is these levels of components d₁ through d_(m) that will support the optimal levels of production of the products, which exist in the product space X₁ through X_(N).

Flowcharts of Methodology

The method described above can similarly be represented in the form of flowcharts to describe the process steps. Referring now to FIG. 10, a flowchart 1000 is shown of certain representative process steps used to find an optimum solution for an EV function. In step 1002, the EVF is converted to a closed form expression as per the apparatus and method described in the prior referenced application. A linear transformation, i.e., inverse Cholesky or the like, is applied in step 1004 to convert the X-space of the products to the Z-space required for the optimization solution. The Loading step is applied via step 1006, to recursively determine blocks of elements Z, as gated by the various components d. In step 1008, the Re-Loading step is performed to properly account for any Unloaded components, and to thereafter Merge various elements together into a single block is necessary. After the Loading and Re-Loading steps, the resulting configuration will be in equilibrium, and is hence referred to as an Equilibrium Configuration. In step 1010, the EV function resulting from each block of the Equilibrium Configuration are maximized, with a level Z resulting from each maximization. In step 1012, the component levels (i.e., values of d) can be computed from the resulting values of Z, via “backing out” each set of d components from each Z element through inverse transforms. The resulting levels of d will thereby be capable of producing enough products X to maximize the associated EVF for the system or plan.

Referring now to FIG. 1, the aforementioned Loading step (1006) is described in further detail via the representative steps shown in flowchart 1100. As described above in graphical terms, the transformed X-space consists of elements Z₁ through Z_(N) which comprise an overall system or plan. The method starts its recursive routine at the start terminator 1101. In the first step, decisional block 1102 inquires whether there are any more Z elements to be loaded. If no more Z elements exists, then the loading step is finished and is routed to the end terminator 1130. Otherwise, if more elements exist, then step 1104 is used to select that next element Z to be loaded. As such, the method will initially start at Z₁ and move on through the remaining Z elements in the particular system or plan.

Decisional block 1106 next determines if the selected Z element is gated by the next component d, in the series of components. The method will start with component d₁ and move on through the remaining d elements associated with the plan. If the Z element is not gated by the next component (i.e. NO), then the method is routed back to step 1102 to inquire whether any more Z elements remain to be loaded. Otherwise if the Z element is gated by this next component (i.e. YES), then step 1108 shows the necessity for Unloading that component from the Previous Z element, if that component was so Loaded. Step 1110 shows the selected Z (from step 1104) being loaded with the d component. Step 1112 nexts shows the process of recomputing the new maximum of the loaded EVF, which results in a new maximum level Z*.

Decisional block 1114 next inquires whether the new maximum Z* is gated by any remaining components in the plan. If the new maximum is so gated (i.e. YES), then the method is routed back up to step 1108 so that the particular component can be unloaded from the previous Z (if so loaded). Step 1110 then loads this next component onto Z, and a new maximum is recomputed for the resulting EVF. This process loop repeats itself until the new maximum is not longer gated by any further remaining components (i.e. NO results from decisional block 1114. The process is thereafter routed back up to step 1102 to move onto the next Z element, if more Z elements exist to be loaded.

Once the Loading Step is completed (element 1006, FIG. 10), the Re-loading Step is performed (element 1008, FIG. 10). Referring now to FIG. 12, certain representative steps associated with the Re-Loading process are shown. The process begins at the Start terminator 1202. The Re-Loading step is essentially going to address Z elements that had a particular component unloaded via the methodology described in the Loading Step above. The process will recursively cycle through all of the relevant Z elements, to make sure that each one is Re-Loaded, as necessary. Step 1204 shows the step of selecting the next Z that had a component unloaded from the Loading Step, starting with Z1. Step 1206 shows that component being Re-Loaded onto the selected Z element. In step 1208, the maximum of the associated EVF is recomputed to find the level Z**. In decisional block 1210, it is next determined whether the newly maximized Z** is gated by the particular component.

If this Z** is not so gated (i.e. NO), then control is routed back up to step 1204, to select the next Z element. If Z** is so gated (i.e. YES), then two possibilities might occur. In decisional block 1212, an inquiry is made as to whether this Z element has been Re-Loaded. If Z has not been Re-Loaded (i.e. NO), then control is routed back to step 1206 wherein the Unloaded component is Re-Loaded onto component Z. The process then continues through the steps 1208 and 1210 as before. If Z has been Re-Loaded (i.e. YES results from decisional block 1212), then step 1214 next shows the step of Merging the particular Z's that share a gating component. As described above, Merging results in a larger graphical block, or sub-graph, of the main system or plan, but which can still be maximized over a single variable Z associated with that block. Thereafter, a decisional block 1216 inquires whether there are more Z elements in the representative plan. If more Z elements exist (i.e. YES), then control is routed back up to step 1204, wherein the next Z element is selected that had a component Unloaded. This process recursively continues down through the aforementioned steps until there are no more Z elements associated with the plan, and control is routed to the End Terminator 1220 from decisional block 1216.

Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Therefore, the described embodiments should be taken as illustrative and not restrictive, and the invention should not be limited to the details given herein but should be defined by the following claims and their full scope of equivalents. 

1. A computer-implemented method performed by a computer comprising: optimizing by the computer a multivariate representation of resources using multiple single-variable optimizations, wherein the resources are used in producing a set of products, and the resources, the set of products and their respective connectivities are represented in a product space plan, the optimizing comprising converting a non-linear expected value function associated with the resources and products into a closed form expression; transforming by the computer the product space plan into a working transformed space plan, wherein: the products are transformed into working elements, the transforming includes taking a transformation of the product space plan to provide the working transformed space plan, and the transforming maps a distribution induced on the resources by a product demand distribution into a distribution with a diagonal covariance matrix; performing by the computer a loading step to form elemental blocks as a function of a single variable of the multivariate representation with elements being loaded with resources that gate production of the element; examining the elemental blocks to determine if a first element has not been loaded with a corresponding first resource that gates production of the first element; if the examining indicates that the first element has not been loaded with the first resource, performing a re-loading step to form elemental blocks as a function of a single variable of the multivariate representation with the first element being reloaded with the first resource; solving by the computer for the maximum of each elemental block over each associated single variable of the multivariate representation; and determining and presenting the optimum level of resources as a function of the solved for maximums.
 2. The method of claim 1, wherein the loading and re-loading steps result in an equilibrium configuration that provides the minimum amount of resources to produce any given amount of products across the whole plan.
 3. The method of claim 1, wherein the loading step further includes: sequentially looking at each present working element; determining if each associated resource gates production of the element, if gating occurs, then unloading the resource from a prior element if so loaded, and loading the resource onto the present element.
 4. The method of claim 3, wherein the reloading step further includes: sequentially looking at each present working element; reloading each unloaded resource back onto the element; redetermining if the element is gated by each reloaded resource; if the element is so gated, then merging the elements sharing each gating resource into a common elemental block which is a function of a single variable.
 5. The method of claim 3, wherein step of determining that gating occurs includes calculating a new maximum for the loaded element and determining if any remaining components further gate the maximum.
 6. The method of claim 4, wherein step of redetermining that gating occurs includes recalculating a new maximum for the reloaded element and determining if any remaining components further gate the maximum.
 7. The method of claim 4, wherein the step of merging the elements results in an elemental block that is a sub-plan of the overall plan, but which is a function of a single variable.
 8. The method of claim 7, wherein the merged elements intersect at a common resource in the transformed space.
 9. The method of claim 1, wherein the non-linear expected value function represents a statistical expectation of the value function at a given resource allocation and for a given demand distribution.
 10. The method of claim 1, wherein the transforming step involves taking a transformation of the product space to provide the working transformed space wherein the distribution induced on the resources is transformed into a distribution with zero mean and unit variance.
 11. The method of claim 1, wherein the presenting consists of storing, in a memory, the optimum level of resources as a function of the solved for maximums.
 12. A computer-implemented method performed by a computer comprising: optimizing by the computer a multivariate representation of resources using multiple single-variable optimizations, wherein the resources are used in producing a set of products, and the resources, the set of products and their respective connectivities are represented in a product space plan, the optimizing comprising converting a non-linear expected value function associated with the resources and products into a closed form expression; transforming the product space plan into a working transformed space plan wherein: the products are transformed into working elements, the transforming step involves taking a transformation of the product space to provide the working transformed space, the distribution induced on the resources is transformed into a distribution with zero mean and unit variance, and the transformation includes an inverse Cholesky transformation of the product space to provide the working transformed space; performing a loading step to form elemental blocks as a function of a single variable of the multivariate representation with elements being loaded with resources that gate production of the element; examining the elemental blocks to determine if a first element has not been loaded with a corresponding first resource that gates production of the first element; if the examining indicates that the first element has not been loaded with the first resource, performing a re-loading step to form elemental blocks as a function of a single variable of the multivariate representation with the first element being reloaded with the first resource; solving by the computer for the maximum of each elemental block over each associated single variable of the multivariate representation; and determining and presenting the optimum level of resources as a function of the solved for maximums. 